package day18;

import lombok.SneakyThrows;

/*
Java的反射（reflection）机制是指在程序的运行状态中，
    1. 可以构造任意一个类的对象
    2. 可以了解任意一个对象所属的类，可以了解任意一个类的成员变量和方法
    3. 可以调用任意一个对象的属性和方法
    spring 反射  框架必用反射
    写spring的人知道会有哪家公司的哪个项目的哪个程序员去写哪个项目，会用哪个
    类吗？
    反过来? 我为什么要反过来?
    通用。
    反过来。通用
    项目： ABCD..N个模块 。  通用功能。导出
 */
public class Test {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        // 反射，可以预测未来。可以提前写好不存在的类的功能代码。
        // new 不存在的类去new的。
        Object instance = getInstance("day18.M");
        System.out.println(instance);
    }
    @SneakyThrows
    public static Object getInstance(String path) {
        return Class.forName(path).newInstance();
    }
}
